package com.qidian.k12.service.impl;

import com.qidian.k12.pojo.TemplateItem;
import com.qidian.k12.mapper.TemplateItemMapper;
import com.qidian.k12.service.TemplateItemService;
import com.qidian.k12.util.K12Result;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * (TemplateItem)表服务实现类
 *
 * @author makejava
 * @since 2021-10-28 09:02:10
 */
@Service("templateItemService")
public class TemplateItemServiceImpl implements TemplateItemService {
    @Resource
    private TemplateItemMapper templateItemMapper;

    public List<TemplateItem> queryByTempId(long templateId){
        return templateItemMapper.queryByTempId(templateId);
    };

    /**
     * 通过ID查询单条数据
     *
     * @param itemid 主键
     * @return 实例对象
     */
    @Override
    public TemplateItem queryById(Long itemid) {
        return this.templateItemMapper.queryById(itemid);
    }


    /**
     * 新增数据
     *
     * @param templateItem 实例对象
     * @return 实例对象
     */
    @Override
    public K12Result insert(TemplateItem templateItem) {
        K12Result result = K12Result.error();
        //校验是否重复
        // 参数的非空或者格式的判断应该在前端或者controller中已经校验过了
        if(templateItemMapper.queryByTempIdAndName(templateItem.getTemplateId(),templateItem.getItemName())!=null){
            return  K12Result.dataExists();
        }
        // 补全数据
        Date date = new Date();
        templateItem.setCreateTime(date);
        templateItem.setModifyTime(date);
        templateItem.setItemStatus(1);
        if(this.templateItemMapper.insert(templateItem)==1){
            result = K12Result.ok();
            result.setData(templateItem);// 将保存的数据返回
            return  result;
        }
        return result;
    }

    /**
     * 修改数据
     *
     * @param templateItem 实例对象
     * @return 实例对象
     */
    @Override
    public K12Result update(TemplateItem templateItem) {
        K12Result result = K12Result.error();
        //修改最后编辑时间
        templateItem.setModifyTime(new Date());
        if(this.templateItemMapper.update(templateItem)==1) {
            result = K12Result.ok();
            result.setData(this.queryById(templateItem.getItemid()));
        }
        return result;
    }

    /**
     * 通过主键删除数据
     *
     * @param itemid 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Long itemid) {
        return this.templateItemMapper.deleteById(itemid) > 0;
    }
}
